iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
0

描述:選取一個檔案 (或一組檔案),並在檔案上執行命令。這對批次工作很有幫助。
要看 forfiles Command怎麼使用的 2個方式是:
1.cmd --> forfiles /?
2.查看 Microsoft Command Line 網站:
https://docs.microsoft.com/zh-tw/windows-server/administration/windows-commands/forfiles

語法:
FORFILES [/P pathname] [/M searchmask] [/S]
[/C command] [/D [+ | -] {yyyy/MM/dd | dd}]

參數:
/P pathname 表示要開始搜尋的路徑。
預設資料夾是目前的
目錄 (.)。

/M    searchmask    根據 searchmask 搜尋檔案。
                    預設的 searchmask 是 '*'。

/S                  指示 forfiles 遞迴搜尋
                    子目錄。例如 "DIR /S"。

/C    command       表示每個檔案要執行的命令。
                    命令字串應該包含在雙括號
                    之間。

                    預設的命令是 "cmd /c echo @file"。

                    下列變數可以使用於命令字串:

                    @file    - 傳回檔案的名稱。
                    @fname   - 只傳回檔案的名稱,
                               不傳回副檔名。
                    @ext     - 只傳回檔案的
                               副檔名。
                    @path    - 傳回檔案的完整路徑。
                    @relpath - 傳回檔案的相對
                               路徑。
                    @isdir   - 如果檔案類型是目錄的話,
                               傳回 "TRUE",如果是檔案
                               的話,傳回 "FALSE"。
                    @fsize   - 傳回檔案的大小,
                               單位是位元組。
                    @fdate   - 傳回檔案上次修改的
                               日期。
                    @ftime   - 傳回檔案上次修改
                               的時間。

                    要在命令列中包含特殊字元的話,
                    請使用 0xHH 格式的十六
                    進位字元碼 (例如 0x09 代表 tab)。
                    內部的 CMD.exe 命令應該
                    以 "cmd /c" 執行。

/D    date          選取檔案上次修改的時間大於或
                    等於 (+) 、小於或等於 (-),
                    使用 "yyyy/MM/dd" 格式指定的日期;
                    或選取檔案上次修改
                    的時間大於或等於 (+)
                    目前的日期再加上 "dd" 天、
                    小於或等於 (-) 目前的日期減去 "dd" 天。
                    有效的 "dd" 可以是介於
                    0 - 32768 之間的數字。
                    如果未指定,"+" 將被視為預設符號。

/?                  顯示這個說明訊息。

forfiles 這個指令是個人推薦非常好使用的一個Command,可以用來刪除一些過期或不需要的檔案,以下是幾個範例參考:

範例一、搜尋D:\UPM\下,包含子資料夾所有log檔,並顯示出來.
https://ithelp.ithome.com.tw/upload/images/20200919/20010931I7NjlIXoV0.png

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20200919/20010931wDdvZx3zYy.png

範例二、將C:\Windows\Logs\CBS 下7天前的檔案刪除
https://ithelp.ithome.com.tw/upload/images/20200919/20010931p5Ene1hXKC.png

範例三、將C:\Windows\Logs\CBS 下 2019/12/31前的檔案(含隱藏檔,多了/A參數)刪除
https://ithelp.ithome.com.tw/upload/images/20200919/20010931IBmQG4r5zg.png

範例四、將 D:\UPM\Downloads下超過14天的檔案移動到 T:\UPM\Downloads\下
https://ithelp.ithome.com.tw/upload/images/20200919/20010931rJ06Pr7Nye.png

範例五、當目錄的路徑太長時,你可以這麼做。例如目錄為 C:\Documents and Settings\user\Local Settings\Temp
https://ithelp.ithome.com.tw/upload/images/20210219/20010931DAZszvYqNF.png


上一篇
Day4."icacls" 指令如何使用?
下一篇
Day6."net" 指令如何使用?
系列文
挑戰30天-學習52個最常用的 Windows Command Line !9
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言